﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Namespace roncliProductions.LibWowArmory.Character.Sheet

    ''' <summary>
    ''' A class that encapsulates spell stats
    ''' </summary>
    ''' <remarks></remarks>
    Public Class SpellStats

        ''' <summary>
        ''' The character's spell power
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property SpellPower As SpellPowerStats

        ''' <summary>
        ''' The character's pet's bonus to attack power
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property PetAttackPower As Integer

        ''' <summary>
        ''' The character's pet's bonus to spell damage
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property PetSpellDamage As Integer

        ''' <summary>
        ''' The spell power type used to determine the character's pet's increase in attack power and spell damage
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property PetSpellType As String

        ''' <summary>
        ''' The character's spell hit rating
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property HitRating As SpellHitRatingStats

        ''' <summary>
        ''' The character's spell crit chance
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property CritChance As SpellCritChanceStats

        ''' <summary>
        ''' The character's mana per five seconds while casting
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property ManaRegenWhileCasting As Double

        ''' <summary>
        ''' The character's mana per five seconds while not casting
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property ManaRegenWhileNotCasting As Double

        ''' <summary>
        ''' The character's spell haste percent
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property HastePercent As Double

        ''' <summary>
        ''' The character's spell haste rating
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property HasteRating As Integer

        ''' <summary>
        ''' A constructor to create new spell information
        ''' </summary>
        ''' <param name="spsSpellPower"></param>
        ''' <param name="intPetAttackPower"></param>
        ''' <param name="intPetSpellDamage"></param>
        ''' <param name="strPetSpellType"></param>
        ''' <param name="shrSpellHitRating"></param>
        ''' <param name="sccSpellCritChance"></param>
        ''' <param name="dblManaRegenWhileCasting"></param>
        ''' <param name="dblManaRegenWhileNotCasting"></param>
        ''' <param name="dblHastePercent"></param>
        ''' <param name="intHasteRating"></param>
        ''' <remarks></remarks>
        Public Sub New(ByVal spsSpellPower As SpellPowerStats, ByVal intPetAttackPower As Integer, ByVal intPetSpellDamage As Integer, ByVal strPetSpellType As String, ByVal shrSpellHitRating As SpellHitRatingStats, ByVal sccSpellCritChance As SpellCritChanceStats, ByVal dblManaRegenWhileCasting As Double, ByVal dblManaRegenWhileNotCasting As Double, ByVal dblHastePercent As Double, ByVal intHasteRating As Integer)
            SpellPower = spsSpellPower
            PetAttackPower = intPetAttackPower
            PetSpellDamage = intPetSpellDamage
            PetSpellType = strPetSpellType
            HitRating = shrSpellHitRating
            CritChance = sccSpellCritChance
            ManaRegenWhileCasting = dblManaRegenWhileCasting
            ManaRegenWhileNotCasting = dblManaRegenWhileNotCasting
            HastePercent = dblHastePercent
            HasteRating = intHasteRating
        End Sub

    End Class

End Namespace
